En esta guía, se ofrece un enfoque práctico para implementar una aplicación con llamadas a funciones con Gemma. Esta técnica se puede aplicar a varias versiones del modelo de Gemma a través de una ingeniería de instrucciones cuidadosa. Puedes encontrar más información en Más allá del chatbot: IA de agentes con Gemma.
Explicación de las llamadas a función
La estructura común para las llamadas a funciones incluye algunos componentes clave, que están diseñados para permitir que Gemma interactúe con herramientas o APIs externas.
Describe las herramientas
Le indicas al modelo las "herramientas" (funciones) que puede usar. Esto incluye lo siguiente:- Qué hace la herramienta (descripción)
- Qué información necesita la herramienta (parámetros)
El usuario hace una pregunta
Le haces una pregunta al modelo o le asignas una tarea.Gemma decide
El modelo determina si necesita una herramienta para responder tu pregunta.Gemma solicita una herramienta
Si se necesita una herramienta, Gemma generará un código unido con ```tool_code```La herramienta hace su trabajo
La herramienta (función) toma la información del modelo y hace lo que se espera que haga.La herramienta muestra resultados
Gemma espera obtener su resultado unido con ```tool_output```Gemma da la respuesta final
El modelo usa los resultados de la herramienta para crear una respuesta completa y precisa para ti.
Sugerencias útiles
- Esquema JSON: El uso del esquema JSON para las definiciones de parámetros, aunque no es obligatorio, ofrece las ventajas de una estructura coherente y una validación automatizada.
- Comprensión clara: La calidad de la descripción de la función es fundamental para que el modelo identifique correctamente cuándo usarla.
- Manejo de errores: El manejo de errores sólido es esencial para administrar casos en los que la llamada a función falla o muestra resultados inesperados.
- Proceso iterativo: A veces, hay varias conversaciones entre el modelo y las llamadas a función.
Ejemplos de instrucciones y resultados
Puedes encontrar el código de esta aplicación en el repositorio de código de Gemma Cookbook.
Pasos 1 y 2: Describe la herramienta y asigna una tarea
Entrada: Una imagen divertida de un gato
Entrada de texto:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
Paso 3: Gemma decide y solicita una herramienta
Esta instrucción produciría la siguiente respuesta:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
Paso 4: La herramienta hace su trabajo
Para procesar el resultado del modelo, deberás ubicar los bloques de código, analizar los argumentos de la función y ejecutar las funciones.